Voice communication and other time sensitive data may be transmitted over unreliable networks such as IP networks, cellular network, wireless network, and the Internet. Data packets may be lost while being sent through the network. Often communication redundancy is required to compensate for the lost packets. For example, network packets with redundant data may be sent more than once in case one of the network packets is dropped. However, it is often difficult to determine an optimum level of redundancy. Additionally, additional communication redundancy requires additional bandwidth and communication delay requirements that may be undesirable. Therefore, there exists a need for a way to more efficiently provide communication redundancy.